(function() {
    var tabsArray = [];
    var pages_tabs = {
        init: function() {
            $("#pages_tabs li").removeClass('active');
            $(".page").removeClass('active');
        },
        creatHtml: function(loadType, url, id) {
            var html;
            switch (loadType) {
                case "iframe":
                    html = '<div class="page tab-pane  animated fadeIn " role="tabpanel" id="' + id + '"><iframe src="' + url + '" width="100%" height="100%"  frameborder="0"></iframe></div>';
                    return html;
                    break;
                case "ajax":
                    var htmlobj = $.ajax({
                        url: url,
                        async: false
                    });
                    html = '<div class="page tab-pane  animated fadeIn " style="overflow-y:scroll;" role="tabpanel" id="' + id + '">' + htmlobj.responseText + '</div>';
                    return html;
                    break;
                default:
                    return;
            };
        },
        appendHtml: function(loadType, url, id) {
            var html_content = pages_tabs.creatHtml(loadType, url, id);
            var pages_wrap = $("#pages-boxes");
            if (window.top != window.self) {
                pages_wrap = $("#pages-boxes", window.parent.document);
            }
            pages_wrap.append(html_content);
            var page_height = document.body.clientHeight - 90 + "px";
            $(".page", window.parent.document).height(page_height);
        },
        appendTab: function(title, id) {
            var html_title = '<li role="pre"><a href="#' + id + '" class="border-right" role="tab" data-toggle="tab">' + title + '</a><i class="fa fa-close"></i></li>';
            var tabs_wrap = $("#pages_tabs");
            if (window.top != window.self) {
                tabs_wrap = $("#pages_tabs", window.parent.document);
            }
            tabs_wrap.append(html_title);
            pages_tabs.posTab();
        },
        tabWidth: function() {
            var allWidths;
            var tabsWidth = 0;
            var pages_tab_width = $("#wrapper").width() - $("#left-slider").width() - 116 - 69-57;
            //$("#tabs").width(pages_tab_width);
            var tabwrapWidth =pages_tab_width;
            var oTab = $("#pages_tabs").find("li");
            for (var i = 0; i < oTab.length; i++) {
                var tab_width = $(oTab[i]).width() + 2;
                tabsWidth += tab_width;
            };
            return allWidths = {
                tabsWidth: tabsWidth,
                tabwrapWidth: tabwrapWidth,
            }
        },
        posTab: function() {
            var allWidths = pages_tabs.tabWidth();
            console.log(allWidths.tabsWidth +"++++++"+ allWidths.tabwrapWidth);
            if (allWidths.tabsWidth > allWidths.tabwrapWidth) {
                var pos = allWidths.tabsWidth - allWidths.tabwrapWidth;
                $("#pages_tabs").width(allWidths.tabsWidth).css("margin-left", -pos);
            } else {
                $("#pages_tabs").css("margin-left", "0px");
            }
        },
        prevTab: function() {
            var index = 0;
            $("#prev_btn").click(function() {
                index++;
                var tabLength = $("#pages_tabs li").length;
                if(index>tabLength){
                    index=0;
                }else{
                    tabLength -= index;
                }
                var mrLeft = $("#pages_tabs").css("margin-left");
                var newMr = parseInt(mrLeft) + $($("#pages_tabs li")[tabLength]).width();
                if (newMr > 0) {
                    newMr = 0;
                }
                console.log(newMr);
                $("#pages_tabs").css("margin-left", newMr);
            })
        },
        nextTab: function() {
            var index = 0;
            $("#next_btn").click(function() {
               var tabs_length= $("#pages_tabs li").length;
                var mrLeft = $("#pages_tabs").css("margin-left");
                if(index>tabs_length){
                    index=0;
                }
                var newMr = parseInt(mrLeft) - $($("#pages_tabs li")[index]).width();
                var allWidths = pages_tabs.tabWidth();
                console.log(allWidths);
                var pos = allWidths.tabsWidth - allWidths.tabwrapWidth;
                if(allWidths.tabsWidth>allWidths.tabwrapWidth){
                    if (newMr < -pos) {
                        newMr = -pos;
                    }
                    console.log(newMr);
                    $("#pages_tabs").css("margin-left", newMr);
                }
                
                index++;
            })
        },
        checkedTab: function(id) {
            if (tabsArray.indexOf(id) > -1) {
                return true; //存在
            } else {
                return false; //不存在
            }
        },
        closeTab: function(id) {
            var $this = $('a[href=' + id + ']').parent("li");
            if ($this.hasClass('active')) {
                var pre_id = $this.prev().find("a").attr("href");
                $("a[href='" + pre_id + "']").tab("show");
            };
            $this.remove();
            $(id).remove();
            pages_tabs.delArrTarget(id);
            pages_tabs.posTab();

        },
        delArrTarget: function(id) {
            for (var i = 0; i < tabsArray.length; i++) {
                if (tabsArray[i] == id.replace("#", "")) {
                    tabsArray.splice(i, 1);
                }
            }
        },
        controls: function() {
            $("#dropdown-menu a").click(function() {
                var clostType = $(this).data("close");
                switch (clostType) {
                    case "self":
                        pages_tabs.ctrl_self();
                        break;
                    case "others":
                        pages_tabs.ctrl_others();
                        break;
                    case "all":
                        pages_tabs.ctrl_all();
                        break;

                }

            })
        },
        ctrl_self: function() {
            var self_target = $("#pages_tabs li.active").find("a");
            var id = self_target.attr("href");
            pages_tabs.closeTab(id);
        },
        ctrl_others: function() {
            var self_target = $("#pages_tabs li.active").find("a");
            var active_id = self_target.attr("href");
            active_id = active_id.replace("#", "");
            var times = tabsArray.length;
            for (var i = 0; i < times; i++) {
                if (tabsArray[0] == active_id) {
                    var id = "#" + tabsArray[1];
                } else {
                    var id = "#" + tabsArray[0];
                }
                pages_tabs.closeTab(id);
            }
        },
        ctrl_all: function() {
            var times = tabsArray.length;
            for (var i = 0; i < times; i++) {
                console.log(times);
                pages_tabs.closeTab("#" + tabsArray[0]);
            }

        },
        bind_click: function() {

            $("body").delegate("a[data-rel='page']", "click", function() {
                var loadType = $(this).data("onload") ? $(this).data("onload") : "iframe";
                var title = $(this).data("title") ? $(this).data("title") : "服务平台";
                var url = $(this).data("href");
                var id = $(this).data("id");
                if (!pages_tabs.checkedTab(id)) {
                    tabsArray.push(id);
                    pages_tabs.appendTab(title, id);
                    pages_tabs.appendHtml(loadType, url, id);
                }else{
                    $("#"+id).find("iframe").attr("src",url)//解决测试问题
                }
                $("#tabs", window.parent.document).find("a[href='#" + id + "']").tab("show");

            });

            $("#pages_tabs").delegate('.fa-close', "click", function() {
                var id = $(this).prev("a").attr("href");
                pages_tabs.closeTab(id);
            });
        }
    }

    pages_tabs.bind_click();
    pages_tabs.prevTab();
    pages_tabs.nextTab();
    pages_tabs.controls();
})(jQuery)
